package com.sugon.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * 模具备件库存状况实体
 * 表名 MODULE_SP_STOCK
 *
 * @author sugon
 * @date 2021-10-13 16:59:06
 */
@NoArgsConstructor
@Data
public class ModuleSpStockEntity implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 备注
     */
    private String remark;

    /**
     * 最近一次更新用户
     */
    private String modifyUser;

    /**
     * 最近一次更新时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date gmtModified;

    /**
     * 创建用户
     */
    private String createUser;

    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date gmtCreate;

    /**
     * 删除标识
     */
    private Integer delFlag;

    /**
     * 出库时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date stockOutDate;

    /**
     * 入库时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm", timezone = "GMT+8")
    private Date stockInDate;
    /**
     * 库存状态，取值自：MoldSpStockState常量类
     * 0: 入库中
     * 1: 在库
     * 2: 已出库
     */
    private Integer state;
    /**
     * 型芯备件唯一码
     */
    private String uniqueCode;
    /**
     * 采购批次ID
     */
    private String purchasingBatchId;

    /**
     * 型芯计划明细ID
     */
    private String demandItemId;

    /**
     * 车间ID，哪个车间的
     */
    private String workshop;

    /**
     * 车间仓库ID，表示型芯入库到哪个仓库
     */
    private String storeId;
    /**
     * 主键
     */
    private String id;

    public ModuleSpStockEntity(String uniqueCode, String purchasingBatchId) {
        this.uniqueCode = uniqueCode;
        this.purchasingBatchId = purchasingBatchId;
    }

    /*************VO字段***************/

    /**
     * 模具型芯ID
     */
    private String moldSpId;

    /**
     * 备件编码
     */
    private String partCode;
    /**
     * 型芯名称
     */
    private String sparePartsName;
    /**
     * 型芯规格
     */
    private String sparePartsSpec;

    /**
     * 仓库名称
     */
    private String storeHouseName;

    /**
     * 型芯备件条码代码 UNIQUE_BAR_CODE
     */
    private String uniqueBarCode;

    /**
     * 当前模具型芯使用的位置列表
     */
    private List<ModulPositionCorrelationEntity> positionList;

}
